/**
 *
 * @description: 数组扩展
 * @author: junyong.hong
 * @createTime: 2018/3/28
 * @version: 1.0.0.0
 * @history:
 *    1、
 *    2、
 *
 */
{
    // 是一个数组
    let arr = Array.of(3,4,7,9,11);
    console.log('arr是一个数组' + arr);      // 3,4,7,9,11

    // 空数组
    let empty = Array.of();
    console.log('空数组:',empty);            // 空数组: []
}

{
    let p = document.querySelectorAll('p');
    let pArr = Array.from(p);
    pArr.forEach(function (item) {
        // textContent原生js获取DOM节点内容
        // es6
        // hjy
        // oli
        console.log(item.textContent);
    });

    // 把数组的里参数都乘以2
    console.log(Array.from([1,3,5],function (item) {
        return item*2;  // 2,6,10
    }));
}

{
    // 数组里的参数都被替换成7
    console.log('fill-7',[1,'a',undefined].fill(7));    // [7, 7, 7]
    // 从起始位置1，不到3的位置，替换成7
    console.log('fill,post',['a','b','c'].fill(7,1,3)); // ["a", 7, 7]
}

{
    for(let index of ['1','c','ks'].keys()){
        // 0 1 2
        console.log('keys', index);
    }

    for(let value of ['1','c','ks'].values()){
        // 1 c ks
        console.log('values', value);
    }

    for(let [index,value] of ['1','c','ks'].entries()){
        // index=0, value=1
        // index=1, value=c
        // index=2, value=ks
        console.log('index=' + index + ', value=' + value);
    }
}

{
    // Array.prototype.copyWithin(target, start = 0, end = this.length)
    // target（必需）：从该位置开始替换数据。如果为负值，表示倒数。
    // start（可选）：从该位置开始读取数据，默认为 0。如果为负值，表示倒数。
    // end（可选）：到该位置前停止读取数据，默认等于数组长度。如果为负值，表示倒数。

    // 从0的位置开始替换，从3开始读取，从4截止
    // 把4放到1的位置上：[4, 2, 3, 4, 5]
    console.log([1,2,3,4,5].copyWithin(0,3,4));
}

{
    console.log([1,2,3,4,5,6].find(function (item) {
        // 查找第一个符合大于3的值（找到了就停止）
        // 返回4
        return item > 3;
    }));

    console.log([1,2,3,4,5,6].findIndex(function (item) {
        // 查找第一个符合大于3的下标（找到了就停止）
        // 返回3
        return item > 3;
    }));
}

{
    // 数组中是不是包含了1
    // true
    console.log('number',[1,2,NaN].includes(1));
    // true
    console.log('number',[1,2,NaN].includes(NaN));
}













